package com.yidu.ladder.base.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yidu.ladder.base.dao.BusDao;
import com.yidu.ladder.base.domain.Bus;
import com.yidu.ladder.base.domain.BusVo;
import com.yidu.ladder.base.domain.Subset;
import com.yidu.ladder.base.service.BusService;

/**
 * 班车业务逻辑接口实现类
 * 
 * @author yy
 * @since 2019-12-2
 *
 */
@Service
public class BusServiceImpl implements BusService {

	/**
	 * 关联班车数据访问层
	 */
	@Autowired
	private BusDao busDao;

	public BusDao getBusDao() {
		return busDao;
	}

	public void setBusDao(BusDao busDao) {
		this.busDao = busDao;
	}

	/**
	 * 查询班车
	 */
	@Override
	public Map<String, Object> queryBusByCriteriaWithPage(BusVo busVo) {
		//计算分页
		int page = (busVo.getPage() - 1) * busVo.getLimit();
		busVo.setPage(page);
		// 查询满足检索条件的班车
		List<BusVo> busList = busDao.queryBusByCriteriaWithPage(busVo);
		// 统计用户总数
		Integer total = busDao.countBusByCriteria(busVo);
		// 创建返回结果映射: {"total":"用户总数",rows:"指定页面的用户集合"}
		HashMap<String, Object> returnMap = new HashMap<String, Object>();
		returnMap.put("code", 0);
		returnMap.put("msg", "");
		returnMap.put("count", total);
		returnMap.put("data", busList);
		return returnMap;
	}

	/**
	 * 添加班车
	 */
	@Override
	public int addBus(Bus bus) {
		//调用添加班车方法
		return busDao.addBus(bus);
	}

	/**
	 * 修改班车
	 */
	@Override
	public boolean updateBus(Bus bus) {
		//调用修改班车方法
		return busDao.updateBus(bus) == 1 ? true : false;
	}

	/**
	 * 冻结或还原班车
	 */
	@Override
	public boolean frozenOrRecoveBus(String busId, String useable) {
		String[] busIdArr = busId.split(",");
		int totle = 0;
		for (String bId : busIdArr) {
			// 创建一个对象
			Bus bus = new Bus();
			// 赋值
			bus.setBusId(bId);
			bus.setUseable(useable);
			// 调用修改班车方法
			int result = busDao.updateBus(bus);
			if (result == 1) {
				totle++;
			}
		}
		return totle == busIdArr.length ? true : false;
	}

	/**
	 * 给下拉框赋值
	 */
	@Override
	public List<Subset> selectAllBus() {
		return busDao.selectAllBus();
	}

	/**
	 * 查询所有班车
	 */
	@Override
	public List<Bus> findAllBus() {
		//调用查询所有班车方法
		return busDao.findAllBus();
	}

}
